<template>
  <!-- Excel 导入功能组件 -->
  <upload-excel :on-success="handleSuccess" />
</template>

<script>
import { formatExcelDate } from '@/utils'

import { importEmployee } from '@/api/employees'

export default {
  name: 'Excel',
  methods: {
    // 导入成功以后的回调函数
    async handleSuccess({ results, header }) {
      // 1. 准备映射的数据对象关系
      const obj = {
        入职日期: 'tiemOfEntry',
        姓名: 'username',
        工号: 'workNumber',
        手机号: 'mobile',
        转正日期: 'correctionTime'
      }
      // 2. 遍历读出来results数组, 拿到每个中文key的对象
      const newArr = results.map(item => {
        // 3. 拿到对象的每个中文key (for...in或者用Object.keys())
        // Object.keys(item) // 原地返回值, key名形成的字符串数组
        const zhKeyArr = Object.keys(item) // ['入职日期', '姓名', '工号', '手机号', '转正日期']
        // 4. 遍历中文key字符串, 每个出来, 去obj对象换取英文的key名
        const newObj = {} // 右侧
        zhKeyArr.forEach(zhKey => {
          // 遍历一次就映射过去一对key+value
          const enkey = obj[zhKey]

          // 5. (难) 自己新拼接一个对象(右侧)
          if (enkey === 'tiemOfEntry' || enkey === 'correctionTime') {
            newObj[enkey] = formatExcelDate(item[zhKey])
          } else {
            newObj[enkey] = item[zhKey]
          }
        })
        // 6.遍历结束以后, 把item对象里值, 都赋予给了新对象里
        // 7. 把外面forEach换成map, 收集每次映射好的新对象, 形成一个大数组

        return newObj
      })
      console.log(results, header)
      console.log(newArr)

      const res = await importEmployee(newArr)
      console.log(res)

      // xlsx包, 读取表格里日期的时候, 会按照1900年01月01日进行天数的计算, 返回天数数字
      // 40000多天, 是1900年(当时的UTC时间算)->2019年过的天数 (了解: 在标准的0时上多加了8小时5分43秒) - 在1900年的时候, 时间是UTC+8:5:43 (不是正好的东8区)
      // 可以查询每个年份, 时区: https://www.timeanddate.com/time/zone/china/shanghai
      // 但是new Date() 是从1970年开始计算时间毫秒, 要把天数-掉1970-1900的70年天数
      // 剩余的天数就是1970年->2019年过的天数
      // 表格里获取的时间是北京时间(+8小时的), 所以转换天数要-8小时的时间然后传给new Date()
      // 画图
    }
  }
}
</script>

   <style lang="scss" scoped></style>
